home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume7 / nethack3 / patch7t < prev    next >
Encoding:
Internet Message Format  |  1990-02-26  |  55.7 KB

  1. Path: uunet!jarthur!usc!zaphod.mps.ohio-state.edu!think!mintaka!mit-eddie!uw-beaver!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v09i020:  NetHack3 -  display oriented dungeons & dragons (Ver. 3.0), Patch7t
  5. Message-ID: <5234@tekred.CNA.TEK.COM>
  6. Date: 24 Feb 90 01:04:00 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 1770
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Izchak Miller <izchak@linc.cis.upenn.edu>
  12. Posting-number: Volume 9, Issue 20
  13. Archive-name: NetHack3/Patch7t
  14. Patch-To: NetHack3: Volume 7, Issue 56-93
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 20 (of 30)."
  25. # Contents:  patch7.16
  26. # Wrapped by billr@saab on Wed Feb 21 10:04:41 1990
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'patch7.16' -a "${1}" != "-c" ; then 
  29.   echo shar: Renaming existing file \"'patch7.16'\" to \"'patch7.16.orig'\"
  30.   mv -f 'patch7.16' 'patch7.16.orig'
  31. fi
  32. echo shar: Extracting \"'patch7.16'\" \(53275 characters\)
  33. sed "s/^X//" >'patch7.16' <<'END_OF_FILE'
  34. X*** include/Old/artifact.h    Mon Feb 19 22:05:53 1990
  35. X--- include/artifact.h    Tue Jan 16 18:10:46 1990
  36. X***************
  37. X*** 26,32 ****
  38. X  
  39. X  struct artifact {
  40. X      unsigned    otyp;
  41. X!     char        *name;
  42. X      unsigned    spfx;
  43. X      unsigned long mtype;    /* monster type, symbol, or flag */
  44. X      struct attack attk, defn;
  45. X--- 26,32 ----
  46. X  
  47. X  struct artifact {
  48. X      unsigned    otyp;
  49. X!     const char  *name;
  50. X      unsigned    spfx;
  51. X      unsigned long mtype;    /* monster type, symbol, or flag */
  52. X      struct attack attk, defn;
  53. X*** include/Old/color.h    Mon Feb 19 22:06:15 1990
  54. X--- include/color.h    Thu Feb  8 17:39:31 1990
  55. X***************
  56. X*** 12,26 ****
  57. X  #define BLUE        4
  58. X  #define MAGENTA     5
  59. X  #define CYAN        6
  60. X- #define WHITE        7
  61. X  #define GRAY        7    /* lo-intensity white */
  62. X  #define BRIGHT        8
  63. X  #define ORANGE_COLORED    9
  64. X  #define YELLOW        11
  65. X  #define MAXCOLORS    16    /* 8 basic + 8 bright */
  66. X  
  67. X  /* these can be configured */
  68. X- #define HI_MON        RED + BRIGHT    /* default flesh - red slaps! */
  69. X  #define HI_OBJ        MAGENTA
  70. X  #define HI_METAL    CYAN
  71. X  #define HI_COPPER    YELLOW
  72. X--- 12,25 ----
  73. X  #define BLUE        4
  74. X  #define MAGENTA     5
  75. X  #define CYAN        6
  76. X  #define GRAY        7    /* lo-intensity white */
  77. X  #define BRIGHT        8
  78. X  #define ORANGE_COLORED    9
  79. X  #define YELLOW        11
  80. X+ #define WHITE        15
  81. X  #define MAXCOLORS    16    /* 8 basic + 8 bright */
  82. X  
  83. X  /* these can be configured */
  84. X  #define HI_OBJ        MAGENTA
  85. X  #define HI_METAL    CYAN
  86. X  #define HI_COPPER    YELLOW
  87. X***************
  88. X*** 33,38 ****
  89. X  #define HI_PAPER    WHITE
  90. X  #define HI_GLASS    CYAN + BRIGHT
  91. X  #define HI_MINERAL    GRAY
  92. X! #define HI_ZAP        BLUE + BRIGHT    /* blue zaps! */
  93. X  
  94. X  #endif /* COLOR_H */
  95. X--- 32,37 ----
  96. X  #define HI_PAPER    WHITE
  97. X  #define HI_GLASS    CYAN + BRIGHT
  98. X  #define HI_MINERAL    GRAY
  99. X! #define HI_ZAP        BLUE + BRIGHT
  100. X  
  101. X  #endif /* COLOR_H */
  102. X*** include/Old/config.h    Mon Feb 19 22:06:27 1990
  103. X--- include/config.h    Mon Feb 19 18:16:29 1990
  104. X***************
  105. X*** 20,26 ****
  106. X  #define MSDOS        /* define for MS-DOS (in case compiler doesn't) */
  107. X  #else
  108. X  /* #define MSDOS    /* define for MS-DOS and most other micros */
  109. X! /* #define AMIGA    /* define for Commodore-Amiga */
  110. X  /* #define TOS        /* define for Atari 1040ST */
  111. X  
  112. X  /* #define STUPID    /* avoid some complicated expressions if
  113. X--- 20,34 ----
  114. X  #define MSDOS        /* define for MS-DOS (in case compiler doesn't) */
  115. X  #else
  116. X  /* #define MSDOS    /* define for MS-DOS and most other micros */
  117. X!             /* DO NOT define for AMIGA - MSDOS will be
  118. X!              * automatically defined at the right place. */
  119. X! # ifdef AZTEC_C     /* Manx 3.6 auto-defines this */
  120. X! #  ifdef MCH_AMIGA    /* Manx 3.6 auto-defines this for AMIGA */
  121. X! #   ifndef AMIGA
  122. X! #define AMIGA        /* define for Commodore-Amiga */
  123. X! #   endif        /* (Lattice auto-defines AMIGA) */
  124. X! #  endif
  125. X! # endif
  126. X  /* #define TOS        /* define for Atari 1040ST */
  127. X  
  128. X  /* #define STUPID    /* avoid some complicated expressions if
  129. X***************
  130. X*** 34,53 ****
  131. X               * library in the makefile */
  132. X  /* #define MINIMAL_TERM    /* if a terminal handles highlighting or tabs poorly,
  133. X                 try this define, used in pager.c and termcap.c */
  134. X! /* #define MACOS 1     /* define for Apple Macintosh */
  135. X  #endif
  136. X  
  137. X  #ifdef MACOS
  138. X! #define KR1ED 1        /* for compilers which can't handle defined() */
  139. X! #define LSC 1        /* for the Lighspeed 3.01p4 C compiler on the Mac */
  140. X! /* #define AZTEC 1    /* for the Manx Aztec C 3.6c compiler */
  141. X! /* #define THINKC4    /* for the Think C 4 compiler */
  142. X  #define NEED_VARARGS    /* if you're using precompiled headers */
  143. X! #define SMALLDATA 1    /* for Mac compilers with 32K global data limit */
  144. X!  
  145. X! # ifdef KR1ED
  146. X! #define defined(x) (x<<1) /* Lightspeed & Aztec can't handle defined() yet */
  147. X  # endif
  148. X  #endif
  149. X  
  150. X  
  151. X--- 42,88 ----
  152. X               * library in the makefile */
  153. X  /* #define MINIMAL_TERM    /* if a terminal handles highlighting or tabs poorly,
  154. X                 try this define, used in pager.c and termcap.c */
  155. X! /* #define MACOS     /* define for Apple Macintosh */
  156. X! #endif
  157. X! 
  158. X! #ifdef AMIGA
  159. X! #define NEED_VARARGS
  160. X! # ifdef AZTEC_C
  161. X! #  define KR1ED        /* Aztec 3.6 needs extra help for defined() */
  162. X! # endif
  163. X  #endif
  164. X  
  165. X  #ifdef MACOS
  166. X! /* #define KR1ED    /* for compilers which can't handle defined() */
  167. X!             /* Lightspeed & Aztec can't handle defined() yet */
  168. X! /* #define LSC        /* for the Lightspeed 3.01p4 C compiler on the Mac */
  169. X! /* #define AZTEC    /* for the Manx Aztec C 3.6c compiler */
  170. X! #define THINKC4    /* for the Think C 4 compiler */
  171. X! /* #define MAKEDEFS_C    /* uncomment this ONLY while compiling makedefs */
  172. X! /* #define CUSTOM_IO    /* uncomment only while compiling Nethack */
  173. X! # ifndef MAKEDEFS_C
  174. X! #  ifndef NEED_VARARGS
  175. X  #define NEED_VARARGS    /* if you're using precompiled headers */
  176. X! #  endif
  177. X  # endif
  178. X+ #define SMALLDATA    /* for Mac compilers with 32K global data limit */
  179. X+ #endif
  180. X+ 
  181. X+ 
  182. X+ #ifdef KR1ED        /* For compilers which cannot handle defined() */
  183. X+ #define defined(x) (-x-1 != -1)
  184. X+ /* Because:
  185. X+  * #define FOO => FOO={} => defined( ) => (-1 != - - 1) => 1
  186. X+  * #define FOO 1 or on command-line -DFOO
  187. X+  *      => defined(1) => (-1 != - 1 - 1) => 1
  188. X+  * if FOO isn't defined, FOO=0. But some compilers default to 0 instead of 1
  189. X+  * for -DFOO, oh well.
  190. X+  *      => defined(0) => (-1 != - 0 - 1) => 0
  191. X+  *
  192. X+  * But:
  193. X+  * defined("") => (-1 != - "" - 1)
  194. X+  *   [which is an unavoidable catastrophe.]
  195. X+  */
  196. X  #endif
  197. X  
  198. X  
  199. X***************
  200. X*** 63,69 ****
  201. X  # ifndef KR1ED
  202. X  #define WIZARD  "izchak" /* the person allowed to use the -D option */
  203. X  # else
  204. X! #define WIZARD 1
  205. X  #define WIZARD_NAME "johnny"
  206. X  # endif
  207. X  #endif
  208. X--- 98,104 ----
  209. X  # ifndef KR1ED
  210. X  #define WIZARD  "izchak" /* the person allowed to use the -D option */
  211. X  # else
  212. X! #define WIZARD
  213. X  #define WIZARD_NAME "johnny"
  214. X  # endif
  215. X  #endif
  216. X***************
  217. X*** 78,90 ****
  218. X   *    smaller bones/level/save files, but require additional code and time.
  219. X   */
  220. X  
  221. X  #define COMPRESS "/usr/local/compress"  /* path name for 'compress' */
  222. X! #ifndef COMPRESS
  223. X  #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  224. X  #endif
  225. X  
  226. X! 
  227. X  #define CHDIR        /* delete if no chdir() available */
  228. X  
  229. X  #ifdef CHDIR
  230. X  /*
  231. X--- 113,128 ----
  232. X   *    smaller bones/level/save files, but require additional code and time.
  233. X   */
  234. X  
  235. X+ #ifndef MACOS
  236. X  #define COMPRESS "/usr/local/compress"  /* path name for 'compress' */
  237. X! # ifndef COMPRESS
  238. X  #define ZEROCOMP    /* Use only if COMPRESS is not used -- Olaf Seibert */
  239. X+ # endif
  240. X  #endif
  241. X  
  242. X! #ifndef MACOS
  243. X  #define CHDIR        /* delete if no chdir() available */
  244. X+ #endif
  245. X  
  246. X  #ifdef CHDIR
  247. X  /*
  248. X***************
  249. X*** 173,218 ****
  250. X   */ 
  251. X  
  252. X  /* game features */
  253. X! #define POLYSELF      1 /* Polymorph self code by Ken Arromdee */
  254. X! #define THEOLOGY      1 /* Smarter gods - The Unknown Hacker */
  255. X! #define SOUNDS        1 /* Add more life to the dungeon */
  256. X! #define KICK          1 /* Allow kicking things besides doors -Izchak Miller */
  257. X  /* dungeon features */
  258. X! #define THRONES       1 /* Thrones and Courts by M. Stephenson */
  259. X! #define FOUNTAINS     1 /* Fountain code by SRT (+ GAN + EB) */
  260. X! #define SINKS         1 /* Kitchen sinks - Janet Walz */
  261. X! #define ALTARS        1 /* Sacrifice sites - Jean-Christophe Collet */
  262. X  /* dungeon levels */
  263. X! #define WALLIFIED_MAZE 1 /* Fancy mazes - Jean-Christophe Collet */
  264. X! #define REINCARNATION 1 /* Rogue-like levels */
  265. X! #define STRONGHOLD    1 /* Challenging special levels - Jean-Christophe Collet*/
  266. X  /* monsters & objects */
  267. X! #define ORACLE        1 /* Include another source of information */
  268. X! #define MEDUSA        1 /* Mirrors and the Medusa by Richard P. Hughey */
  269. X! #define KOPS          1 /* Keystone Kops by Scott R. Turner */
  270. X! #define ARMY          1 /* Soldiers, barracks by Steve Creps */
  271. X! #define WORM          1 /* Long worms */
  272. X! #define GOLEMS        1 /* Golems, by KAA */
  273. X! #define INFERNO       1 /* Demons & Demonlords */
  274. X  #ifdef INFERNO
  275. X! #define SEDUCE        1 /* Succubi/incubi additions, by KAA, suggested by IM */
  276. X  #endif
  277. X! #define TOLKIEN       1 /* More varieties of objects and monsters */
  278. X! #define PROBING       1 /* Wand of probing code by Gil Neiger */
  279. X! #define WALKIES       1 /* Leash code by M. Stephenson */
  280. X! #define SHIRT         1 /* Hawaiian shirt code by Steve Linhart */
  281. X! #define MUSIC         1 /* Musical instruments - Jean-Christophe Collet */
  282. X! #define TUTTI_FRUTTI  1 /* Fruits as in Rogue, but which work... -KAA */
  283. X! #define SPELLS        1 /* Spell casting by M. Stephenson */
  284. X! #define NAMED_ITEMS   1 /* Special named items handling */
  285. X  /* difficulty */
  286. X! #define ELBERETH      1 /* Allow for disabling the E word - Mike 3point */
  287. X! #define EXPLORE_MODE  1 /* Allow non-scoring play with additional powers */
  288. X! #define HARD          1 /* Enhanced wizard code by M. Stephenson */
  289. X  /* I/O */
  290. X! #define REDO          1 /* support for redoing last command - DGK */
  291. X! #define COM_COMPL     1 /* Command line completion by John S. Bien */
  292. X! #define CLIPPING      1 /* allow smaller screens -- ERS */
  293. X  
  294. X  #ifdef REDO
  295. X  #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  296. X--- 211,258 ----
  297. X   */ 
  298. X  
  299. X  /* game features */
  300. X! #define POLYSELF      /* Polymorph self code by Ken Arromdee */
  301. X! #define THEOLOGY      /* Smarter gods - The Unknown Hacker */
  302. X! #define SOUNDS        /* Add more life to the dungeon */
  303. X! #define KICK          /* Allow kicking things besides doors -Izchak Miller */
  304. X  /* dungeon features */
  305. X! #define THRONES       /* Thrones and Courts by M. Stephenson */
  306. X! #define FOUNTAINS     /* Fountain code by SRT (+ GAN + EB) */
  307. X! #define SINKS         /* Kitchen sinks - Janet Walz */
  308. X! #define ALTARS        /* Sacrifice sites - Jean-Christophe Collet */
  309. X  /* dungeon levels */
  310. X! #define WALLIFIED_MAZE /* Fancy mazes - Jean-Christophe Collet */
  311. X! #define REINCARNATION /* Rogue-like levels */
  312. X! #define STRONGHOLD    /* Challenging special levels - Jean-Christophe Collet*/
  313. X  /* monsters & objects */
  314. X! #define ORACLE        /* Include another source of information */
  315. X! #define MEDUSA        /* Mirrors and the Medusa by Richard P. Hughey */
  316. X! #define KOPS          /* Keystone Kops by Scott R. Turner */
  317. X! #define ARMY          /* Soldiers, barracks by Steve Creps */
  318. X! #define WORM          /* Long worms */
  319. X! #define GOLEMS        /* Golems, by KAA */
  320. X! #define INFERNO       /* Demons & Demonlords */
  321. X  #ifdef INFERNO
  322. X! #define SEDUCE        /* Succubi/incubi additions, by KAA, suggested by IM */
  323. X  #endif
  324. X! #define TOLKIEN       /* More varieties of objects and monsters */
  325. X! #define PROBING       /* Wand of probing code by Gil Neiger */
  326. X! #define WALKIES       /* Leash code by M. Stephenson */
  327. X! #define SHIRT         /* Hawaiian shirt code by Steve Linhart */
  328. X! #define MUSIC         /* Musical instruments - Jean-Christophe Collet */
  329. X! #define TUTTI_FRUTTI  /* Fruits as in Rogue, but which work... -KAA */
  330. X! #define SPELLS        /* Spell casting by M. Stephenson */
  331. X! #define NAMED_ITEMS   /* Special named items handling */
  332. X  /* difficulty */
  333. X! #define ELBERETH      /* Allow for disabling the E word - Mike 3point */
  334. X! #define EXPLORE_MODE  /* Allow non-scoring play with additional powers */
  335. X! #define HARD          /* Enhanced wizard code by M. Stephenson */
  336. X  /* I/O */
  337. X! #define REDO          /* support for redoing last command - DGK */
  338. X! #define COM_COMPL     /* Command line completion by John S. Bien */
  339. X! #ifndef AMIGA
  340. X! #define CLIPPING      /* allow smaller screens -- ERS */
  341. X! #endif
  342. X  
  343. X  #ifdef REDO
  344. X  #define DOAGAIN '\001'        /* The "redo" key used in tty.c and cmd.c */
  345. X*** include/Old/decl.h    Mon Feb 19 22:06:55 1990
  346. X--- include/decl.h    Mon Feb 19 18:16:33 1990
  347. X***************
  348. X*** 20,26 ****
  349. X  E char *catmore;
  350. X  #endif    /* DEF_PAGER */
  351. X  E char SAVEF[];
  352. X! E char *hname;
  353. X  E const char *hu_stat[];    /* defined in eat.c */
  354. X  E int medusa_level;
  355. X  E int bigroom_level;
  356. X--- 20,26 ----
  357. X  E char *catmore;
  358. X  #endif    /* DEF_PAGER */
  359. X  E char SAVEF[];
  360. X! E const char *hname;
  361. X  E const char *hu_stat[];    /* defined in eat.c */
  362. X  E int medusa_level;
  363. X  E int bigroom_level;
  364. X***************
  365. X*** 73,91 ****
  366. X  E int smeq[];
  367. X  E int doorindex;
  368. X  E char *save_cm;
  369. X! E char *killer;
  370. X  E char inv_order[];
  371. X  E char plname[PL_NSIZ];
  372. X  E char dogname[];
  373. X  E char catname[];
  374. X  E const char sdir[], ndir[];    /* defined in hack.c */
  375. X! E char *occtxt;        /* defined when occupation != NULL */
  376. X! E char *nomovemsg;
  377. X  E const char nul[];
  378. X  E char *HI, *HE, *AS, *AE;    /* set up in termcap.c */
  379. X  E char *CD;            /* set up in termcap.c */
  380. X  E int CO, LI;            /* set up in termcap.c: COLNO and ROWNO+3 */
  381. X! E char *traps[];
  382. X  #ifndef MAKEDEFS_C  /* avoid conflict with lock() */
  383. X  E char lock[];
  384. X  #endif
  385. X--- 73,95 ----
  386. X  E int smeq[];
  387. X  E int doorindex;
  388. X  E char *save_cm;
  389. X! #define KILLED_BY_AN 0
  390. X! #define KILLED_BY 1
  391. X! #define NO_KILLER_PREFIX 2
  392. X! E int killer_format;
  393. X! E const char *killer;
  394. X  E char inv_order[];
  395. X  E char plname[PL_NSIZ];
  396. X  E char dogname[];
  397. X  E char catname[];
  398. X  E const char sdir[], ndir[];    /* defined in hack.c */
  399. X! E const char *occtxt;        /* defined when occupation != NULL */
  400. X! E const char *nomovemsg;
  401. X  E const char nul[];
  402. X  E char *HI, *HE, *AS, *AE;    /* set up in termcap.c */
  403. X  E char *CD;            /* set up in termcap.c */
  404. X  E int CO, LI;            /* set up in termcap.c: COLNO and ROWNO+3 */
  405. X! E const char *traps[];
  406. X  #ifndef MAKEDEFS_C  /* avoid conflict with lock() */
  407. X  E char lock[];
  408. X  #endif
  409. X***************
  410. X*** 130,136 ****
  411. X--- 134,144 ----
  412. X  #ifndef COLOR_H
  413. X  #include "color.h"
  414. X  #endif
  415. X+ # ifdef TOS
  416. X+ E const char *hilites[MAXCOLORS];
  417. X+ # else
  418. X  E char *hilites[MAXCOLORS];
  419. X+ # endif
  420. X  #endif
  421. X  
  422. X  #ifndef OBJ_H
  423. X***************
  424. X*** 189,194 ****
  425. X--- 197,210 ----
  426. X  
  427. X  E const char nothing_happens[];
  428. X  E const char thats_enough_tries[];
  429. X+ 
  430. X+ E const char monsyms[], objsyms[];
  431. X+ E const char *monexplain[], *objexplain[];
  432. X+ 
  433. X+ #ifdef NAMED_ITEMS
  434. X+ E const int artifact_num;
  435. X+ E boolean artiexist[];
  436. X+ #endif
  437. X  
  438. X  #undef E
  439. X  
  440. X*** include/Old/def_os2.h    Mon Feb 19 22:07:10 1990
  441. X--- include/def_os2.h    Tue Nov 28 20:50:49 1989
  442. X***************
  443. X*** 106,108 ****
  444. X--- 106,109 ----
  445. X  USHORT APIENTRY DosFindNext(HDIR, PFILEFINDBUF, USHORT, PUSHORT);
  446. X  USHORT APIENTRY DosSelectDisk(USHORT);
  447. X  USHORT APIENTRY VioGetMode(PVIOMODEINFO, HVIO);
  448. X+ USHORT APIENTRY VioSetCurPos(USHORT, USHORT, HVIO);
  449. X*** include/Old/flag.h    Mon Feb 19 22:08:59 1990
  450. X--- include/flag.h    Wed Jan 10 19:21:58 1990
  451. X***************
  452. X*** 62,67 ****
  453. X--- 62,70 ----
  454. X  #endif
  455. X      boolean  rawio;        /* Whether can use rawio (IOCTL call) */
  456. X  #endif
  457. X+ #ifdef MACOS
  458. X+     boolean  wantspace;        /* Waiting for a space (as in --More--) */
  459. X+ #endif
  460. X  };
  461. X  
  462. X  extern struct flag flags;
  463. X*** include/Old/func_tab.h    Mon Feb 19 22:09:13 1990
  464. X--- include/func_tab.h    Tue Jan 16 18:11:08 1990
  465. X***************
  466. X*** 8,22 ****
  467. X  
  468. X  struct func_tab {
  469. X      char f_char;
  470. X!     int (*f_funct)();
  471. X!     char *f_text;
  472. X  };
  473. X  
  474. X  extern const struct func_tab cmdlist[];
  475. X  
  476. X  struct ext_func_tab {
  477. X!     char *ef_txt, *ef_desc;
  478. X!     int (*ef_funct)();
  479. X  };
  480. X  
  481. X  extern const struct ext_func_tab extcmdlist[];
  482. X--- 8,22 ----
  483. X  
  484. X  struct func_tab {
  485. X      char f_char;
  486. X!     int NDECL((*f_funct));
  487. X!     const char *f_text;
  488. X  };
  489. X  
  490. X  extern const struct func_tab cmdlist[];
  491. X  
  492. X  struct ext_func_tab {
  493. X!     const char *ef_txt, *ef_desc;
  494. X!     int NDECL((*ef_funct));
  495. X  };
  496. X  
  497. X  extern const struct ext_func_tab extcmdlist[];
  498. X*** include/Old/global.h    Mon Feb 19 22:09:24 1990
  499. X--- include/global.h    Mon Feb 19 18:16:29 1990
  500. X***************
  501. X*** 5,23 ****
  502. X  #ifndef GLOBAL_H
  503. X  #define    GLOBAL_H
  504. X  
  505. X! #include <stdio.h>
  506. X  
  507. X  
  508. X  /* #define BETA        /* if a beta-test copy  [MRS] */
  509. X! #define VERSION "3.0h"  /* version number. */
  510. X  
  511. X  /*
  512. X   * Files expected to exist in the playground directory.
  513. X   */
  514. X  
  515. X! #define RECORD    "record"  /* the file containing the list of topscorers */
  516. X! #define    HELP    "help"      /* the file containing command descriptions */
  517. X! #define    SHELP    "hh"      /* abbreviated form of the same */
  518. X  #define    RUMORFILE    "rumors"    /* a file with fortune cookies */
  519. X  #define ORACLEFILE    "oracles"    /* a file with oracular information */
  520. X  #define    DATAFILE    "data"    /* a file giving the meaning of symbols used */
  521. X--- 5,25 ----
  522. X  #ifndef GLOBAL_H
  523. X  #define    GLOBAL_H
  524. X  
  525. X! #ifndef VMS
  526. X! # include <stdio.h>
  527. X! #endif
  528. X  
  529. X  
  530. X  /* #define BETA        /* if a beta-test copy  [MRS] */
  531. X! #define VERSION "3.0i"  /* version number. */
  532. X  
  533. X  /*
  534. X   * Files expected to exist in the playground directory.
  535. X   */
  536. X  
  537. X! #define RECORD        "record"  /* a file containing list of topscorers */
  538. X! #define    HELP        "help"      /* a file containing command descriptions */
  539. X! #define    SHELP        "hh"          /* abbreviated form of the same */
  540. X  #define    RUMORFILE    "rumors"    /* a file with fortune cookies */
  541. X  #define ORACLEFILE    "oracles"    /* a file with oracular information */
  542. X  #define    DATAFILE    "data"    /* a file giving the meaning of symbols used */
  543. X***************
  544. X*** 25,31 ****
  545. X  #define HISTORY        "history"    /* a file giving nethack's history */
  546. X  #define LICENSE        "license"    /* file with license information */
  547. X  #define OPTIONFILE    "opthelp"    /* a file explaining runtime options */
  548. X! 
  549. X  
  550. X  
  551. X  /* Assorted definitions that may depend on selections in config.h. */
  552. X--- 27,35 ----
  553. X  #define HISTORY        "history"    /* a file giving nethack's history */
  554. X  #define LICENSE        "license"    /* file with license information */
  555. X  #define OPTIONFILE    "opthelp"    /* a file explaining runtime options */
  556. X! #ifdef MACOS
  557. X! #define MACHELP        "MacHelp"    /* file with Macintosh information */
  558. X! #endif
  559. X  
  560. X  
  561. X  /* Assorted definitions that may depend on selections in config.h. */
  562. X***************
  563. X*** 55,64 ****
  564. X  typedef schar    xchar;
  565. X  typedef    xchar    boolean;        /* 0 or 1 */
  566. X  
  567. X! #ifndef MACOS    /* defined in MacTypes.h(LSC) or Types.h(Aztec & MPW) */
  568. X  #define    TRUE    ((boolean)1)
  569. X  #define    FALSE    ((boolean)0)
  570. X  #endif
  571. X  
  572. X  #ifdef BITFIELDS
  573. X  #define    Bitfield(x,n)    unsigned x:n
  574. X--- 59,70 ----
  575. X  typedef schar    xchar;
  576. X  typedef    xchar    boolean;        /* 0 or 1 */
  577. X  
  578. X! #ifndef MACOS
  579. X! #ifndef TRUE        /* defined in some systems' native include files */
  580. X  #define    TRUE    ((boolean)1)
  581. X  #define    FALSE    ((boolean)0)
  582. X  #endif
  583. X+ #endif
  584. X  
  585. X  #ifdef BITFIELDS
  586. X  #define    Bitfield(x,n)    unsigned x:n
  587. X***************
  588. X*** 74,80 ****
  589. X   * prototypes for the ANSI compilers so people quit trying to fix the prototypes
  590. X   * to match the standard and thus lose the typechecking.
  591. X   */
  592. X! #if defined(MSDOS) || defined(THINKC4) && !(defined(AMIGA) || defined(TOS))
  593. X  # define CHAR_P char
  594. X  # define SCHAR_P schar
  595. X  # define UCHAR_P uchar
  596. X--- 80,86 ----
  597. X   * prototypes for the ANSI compilers so people quit trying to fix the prototypes
  598. X   * to match the standard and thus lose the typechecking.
  599. X   */
  600. X! #if (defined(MSDOS) && !defined(TOS)) || defined (AMIGA) || defined(THINKC4)
  601. X  # define CHAR_P char
  602. X  # define SCHAR_P schar
  603. X  # define UCHAR_P uchar
  604. X***************
  605. X*** 122,127 ****
  606. X--- 128,134 ----
  607. X  
  608. X  #if defined(VMS) && !defined(VMSCONF_H)
  609. X  # include "vmsconf.h"
  610. X+ # include <stdio.h>
  611. X  #endif
  612. X  
  613. X  #if defined(UNIX) && !defined(UNIXCONF_H)
  614. X*** include/Old/hack.h    Mon Feb 19 22:09:46 1990
  615. X--- include/hack.h    Mon Feb 19 18:16:34 1990
  616. X***************
  617. X*** 75,80 ****
  618. X--- 75,85 ----
  619. X  #include    "rm.h"
  620. X  #endif
  621. X  
  622. X+ #ifdef OVERLAY    /* This doesn't belong here, but we have little choice */
  623. X+ #undef NDECL
  624. X+ #define NDECL(f) f()
  625. X+ #endif
  626. X+ 
  627. X  #ifndef EXTERN_H
  628. X  #include    "extern.h"
  629. X  #endif
  630. X***************
  631. X*** 117,121 ****
  632. X--- 122,151 ----
  633. X  #define getuid() 1
  634. X  #define getlogin() ((char *) NULL)
  635. X  #endif /* MSDOS */
  636. X+ 
  637. X+ /* Macro for a few items that are only static if we're not overlaid.... */
  638. X+ #if defined(OVERLAY) && (defined(OVL0) || defined(OVL1) || defined(OVL2) || defined(OVLB))
  639. X+ # define OSTATIC extern
  640. X+ # define XSTATIC
  641. X+ # define OVERLAY_SPLIT
  642. X+ # ifdef OVLB
  643. X+ #  define VSTATIC
  644. X+ # else
  645. X+ #  define VSTATIC extern
  646. X+ # endif
  647. X+ #else
  648. X+ # define OSTATIC static
  649. X+ # define XSTATIC static
  650. X+ # define VSTATIC static
  651. X+ #endif
  652. X+ 
  653. X+ /* Unless explicit control is being taken of what is linked where, */
  654. X+ /* always compile everything */
  655. X+ #if !defined(OVERLAY) || (!defined(OVL0) && !defined(OVL1) && !defined(OVL2) && !defined(OVLB))
  656. X+ # define OVL0    /* Highest priority */
  657. X+ # define OVL1
  658. X+ # define OVL2    /* Lowest specified priority */
  659. X+ # define OVLB    /* The base overlay segment */
  660. X+ #endif
  661. X  
  662. X  #endif /* HACK_H /**/
  663. X*** include/Old/macconf.h    Mon Feb 19 22:10:17 1990
  664. X--- include/macconf.h    Fri Feb 16 19:15:36 1990
  665. X***************
  666. X*** 10,16 ****
  667. X   *  The following options are configurable:
  668. X   */
  669. X  
  670. X! #define RANDOM        1 /* have Berkeley random(3) */
  671. X  
  672. X  #define PATHLEN    220    /* maximum pathlength */
  673. X  #define FILENAME    31    /* maximum filename length (conservative) */
  674. X--- 10,16 ----
  675. X   *  The following options are configurable:
  676. X   */
  677. X  
  678. X! #define RANDOM        /* have Berkeley random(3) */
  679. X  
  680. X  #define PATHLEN    220    /* maximum pathlength */
  681. X  #define FILENAME    31    /* maximum filename length (conservative) */
  682. X***************
  683. X*** 18,24 ****
  684. X  #define glo(x)    name_file(lock, x)    /* name_file used for bones */
  685. X  #include "msdos.h"    /* contains necessary externs for [os_name].c */
  686. X  extern char *configfile;
  687. X! #define NO_SIGNAL    1
  688. X  #define    perror(x)
  689. X  
  690. X  /*
  691. X--- 18,24 ----
  692. X  #define glo(x)    name_file(lock, x)    /* name_file used for bones */
  693. X  #include "msdos.h"    /* contains necessary externs for [os_name].c */
  694. X  extern char *configfile;
  695. X! #define NO_SIGNAL
  696. X  #define    perror(x)
  697. X  
  698. X  /*
  699. X***************
  700. X*** 55,60 ****
  701. X--- 55,62 ----
  702. X  #include    <types.h>
  703. X  #include    <io.h>
  704. X  #define    memcpy(x,y,j)    movmem(y,x,j)
  705. X+ #define memset(x,y,j)    setmem(x,j,y)
  706. X+ extern char *malloc();
  707. X  extern char    *calloc();
  708. X  #else
  709. X  #include    <Fcntl.h>
  710. X***************
  711. X*** 70,75 ****
  712. X--- 72,78 ----
  713. X  #endif
  714. X  #endif
  715. X  
  716. X+ #include    <pascal.h>
  717. X  #include    <Quickdraw.h>
  718. X  #include    <FontMgr.h>
  719. X  #include    <EventMgr.h>
  720. X***************
  721. X*** 101,108 ****
  722. X--- 104,117 ----
  723. X  #ifdef AZTEC
  724. X  #include    <utime.h>    /* AZTEC 3.6c */
  725. X  #define    curs(x,y)    tcurs(x,y)
  726. X+ #include    <Types.h>
  727. X+ #define    CtoPstr    ctop
  728. X+ #define    PtoCstr    ptoc
  729. X  #else
  730. X  #include    <Time.h>    /* MPW 3.0 */
  731. X+ #include    <Strings.h>
  732. X+ #define    CtoPstr    c2pstr
  733. X+ #define    PtoCstr    p2cstr
  734. X  #endif
  735. X  
  736. X  
  737. X***************
  738. X*** 141,151 ****
  739. X      SysEnvRec    system;
  740. X      char    *keyMap;
  741. X      short    color[8];
  742. X      Handle    shortMBarHandle,
  743. X              fullMBarHandle;
  744. X  } term_info;
  745. X  
  746. X! #define TEXTCOLOR    1
  747. X  
  748. X  #define    appleMenu    101
  749. X  #define    fileMenu    102
  750. X--- 150,161 ----
  751. X      SysEnvRec    system;
  752. X      char    *keyMap;
  753. X      short    color[8];
  754. X+     CursHandle    cursor[8];
  755. X      Handle    shortMBarHandle,
  756. X              fullMBarHandle;
  757. X  } term_info;
  758. X  
  759. X! #define TEXTCOLOR
  760. X  
  761. X  #define    appleMenu    101
  762. X  #define    fileMenu    102
  763. X***************
  764. X*** 172,177 ****
  765. X--- 182,192 ----
  766. X  #define    LEFT_OFFSET    10
  767. X  
  768. X  /* for macflags variable */
  769. X+ #define    fScreenKluges        0x3000
  770. X+ #define    fFullScrKluge        0x2000
  771. X+ #define    fCornScrKluge        0x1000
  772. X+ #define    fDisplayKluge        0x800
  773. X+ #define    fMoveWRTMouse        0x400
  774. X  #define    fZoomOnContextSwitch        0x200
  775. X  #define    fUseCustomFont        0x100
  776. X  #define    fToggleNumPad        0x80
  777. X***************
  778. X*** 189,199 ****
  779. X--- 204,220 ----
  780. X  #define    BONES_TYPE    'BONE'
  781. X  #define    LEVEL_TYPE    'LEVL'
  782. X  #define    HACK_DATA    'HDTA'
  783. X+ #define AUXIL_TYPE    'AUXL'
  784. X+ #define TEXT_TYPE    'TEXT'
  785. X  #define MONST_DATA    101
  786. X  #define OBJECT_DATA    104
  787. X  #define    DEFAULT_DATA    100
  788. X  
  789. X  #include "extern.h"
  790. X+ 
  791. X+ # ifndef MACALERT_H
  792. X+ #  include "MacAlert.h"
  793. X+ # endif
  794. X  
  795. X  #endif /* MACCONF_H /* */
  796. X  #endif /* MACOS / */
  797. X*** include/Old/mfndpos.h    Mon Feb 19 22:10:31 1990
  798. X--- include/mfndpos.h    Tue Nov 28 21:10:41 1989
  799. X***************
  800. X*** 1,4 ****
  801. X! /*    SCCS Id: @(#)mfndpos.h    3.0    88/10/15
  802. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  803. X  /* NetHack may be freely redistributed.  See license for details. */
  804. X  /* mfndpos.h - version 1.0.2 */
  805. X--- 1,4 ----
  806. X! /*    SCCS Id: @(#)mfndpos.h    3.0    89/11/22
  807. X  /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  808. X  /* NetHack may be freely redistributed.  See license for details. */
  809. X  /* mfndpos.h - version 1.0.2 */
  810. X***************
  811. X*** 6,26 ****
  812. X  #ifndef MFNDPOS_H
  813. X  #define MFNDPOS_H
  814. X  
  815. X! /* changed by GAN 02/06/87 to add nine extra bits for traps -
  816. X!  * this because new traps make nine for traps insufficient
  817. X!  */
  818. X!  
  819. X! #define ALLOW_TRAPS     0777777L
  820. X! #define ALLOW_U         01000000L    /* can attack you */
  821. X! #define ALLOW_M         02000000L    /* can attack other monsters */
  822. X! #define ALLOW_TM        04000000L
  823. X! #define ALLOW_ALL       (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
  824. X! #define ALLOW_SSM       010000000L    /* ignores scare monster */
  825. X! #define ALLOW_ROCK      020000000L    /* pushes rocks */
  826. X! #define NOTONL          040000000L    /* stays off direct line to player */
  827. X! #define NOGARLIC        0100000000L    /* hates garlic */
  828. X! #define ALLOW_WALL      0200000000L    /* walks through walls */
  829. X! #define ALLOW_DIG       0400000000L    /* digs */
  830. X! #define ALLOW_SANCT    01000000000L    /* enters a temple */
  831. X  
  832. X  #endif /* MFNDPOS_H /**/
  833. X--- 6,25 ----
  834. X  #ifndef MFNDPOS_H
  835. X  #define MFNDPOS_H
  836. X  
  837. X! #define ALLOW_TRAPS    0x0002FFFFL    /* can enter 18 kinds of traps */
  838. X! #define ALLOW_U     0x00040000L    /* can attack you */
  839. X! #define ALLOW_M     0x00080000L    /* can attack other monsters */
  840. X! #define ALLOW_TM    0x00100000L    /* can attack tame monsters */
  841. X! #define ALLOW_ALL    (ALLOW_U | ALLOW_M | ALLOW_TM | ALLOW_TRAPS)
  842. X! #define NOTONL        0x00200000L    /* avoids direct line to player */
  843. X! #define OPENDOOR    0x00400000L    /* opens closed doors */
  844. X! #define UNLOCKDOOR    0x00800000L    /* unlocks locked doors */
  845. X! #define BUSTDOOR    0x01000000L    /* breaks any doors */
  846. X! #define ALLOW_ROCK    0x02000000L    /* pushes rocks */
  847. X! #define ALLOW_WALL    0x04000000L    /* walks thru walls */
  848. X! #define ALLOW_DIG    0x08000000L    /* digs */
  849. X! #define ALLOW_SANCT    0x20000000L    /* enters temples */
  850. X! #define ALLOW_SSM    0x40000000L    /* ignores scare monster */
  851. X! #define NOGARLIC    0x80000000L    /* hates garlic */
  852. X  
  853. X  #endif /* MFNDPOS_H /**/
  854. X*** include/Old/mkroom.h    Mon Feb 19 22:10:42 1990
  855. X--- include/mkroom.h    Thu Jan 18 20:28:09 1990
  856. X***************
  857. X*** 13,19 ****
  858. X  };
  859. X  
  860. X  struct shclass {
  861. X!     char    *name;    /* name of the shop type */
  862. X      char    symb;    /* this identifies the shop type */
  863. X      int    prob;    /* the shop type probability in % */
  864. X      schar    dist;    /* artifact placement type */
  865. X--- 13,19 ----
  866. X  };
  867. X  
  868. X  struct shclass {
  869. X!     const char    *name;    /* name of the shop type */
  870. X      char    symb;    /* this identifies the shop type */
  871. X      int    prob;    /* the shop type probability in % */
  872. X      schar    dist;    /* artifact placement type */
  873. X*** include/Old/monattk.h    Mon Feb 19 22:10:54 1990
  874. X--- include/monattk.h    Mon Nov 20 20:44:37 1989
  875. X***************
  876. X*** 1,4 ****
  877. X! /*    SCCS Id: @(#)monattk.h    3.0    89/06/15
  878. X  /* NetHack may be freely redistributed.  See license for details. */
  879. X  /* Copyright 1988, M. Stephenson */
  880. X  
  881. X--- 1,4 ----
  882. X! /*    SCCS Id: @(#)monattk.h    3.0    89/11/20
  883. X  /* NetHack may be freely redistributed.  See license for details. */
  884. X  /* Copyright 1988, M. Stephenson */
  885. X  
  886. X***************
  887. X*** 72,77 ****
  888. X  
  889. X  #define AD_SAMU        252        /* hits, may steal Amulet (Wizard) */
  890. X  #define AD_CURS        253        /* random curse (ex. gremlin) */
  891. X- #define AD_CUSS        255        /* says nasty things about you */
  892. X  
  893. X  #endif /* MONATTK_H /**/
  894. X--- 72,76 ----
  895. X*** include/Old/monst.h    Mon Feb 19 22:11:43 1990
  896. X--- include/monst.h    Fri Feb  2 18:24:36 1990
  897. X***************
  898. X*** 18,26 ****
  899. X  #define    MTSZ    4
  900. X      coord mtrack[MTSZ];    /* monster track */
  901. X      int mhp, mhpmax;
  902. X!     char mappearance;    /* nonzero for undetected 'M's and the Wizard */
  903. X!     int mspec_used;     /* monster's special ability attack timeout */
  904. X      schar mtame;        /* level of tameness, implies peaceful */
  905. X  
  906. X      Bitfield(mimic,1);    /* undetected mimic */
  907. X      Bitfield(mdispl,1);    /* mdx,mdy valid */
  908. X--- 18,33 ----
  909. X  #define    MTSZ    4
  910. X      coord mtrack[MTSZ];    /* monster track */
  911. X      int mhp, mhpmax;
  912. X!     unsigned mappearance;    /* for undetected mimics and the wiz */
  913. X!     uchar     m_ap_type;    /* what mappearance is describing: */
  914. X! #define M_AP_NOTHING    0    /* mappearance is unused */
  915. X! #define M_AP_FURNITURE    1    /* stairs, a door, an altar, etc. */
  916. X! #define M_AP_OBJECT    2    /* an object */
  917. X! #define M_AP_MONSTER    3    /* a monster */
  918. X! #define M_AP_GOLD    4    /* a quantity (mappearance holds it) of gold */
  919. X! 
  920. X      schar mtame;        /* level of tameness, implies peaceful */
  921. X+     int mspec_used;     /* monster's special ability attack timeout */
  922. X  
  923. X      Bitfield(mimic,1);    /* undetected mimic */
  924. X      Bitfield(mdispl,1);    /* mdx,mdy valid */
  925. X***************
  926. X*** 33,59 ****
  927. X      Bitfield(mflee,1);    /* fleeing */
  928. X      Bitfield(mfleetim,7);    /* timeout for mflee */
  929. X  
  930. X      Bitfield(msleep,1);    /* sleeping */
  931. X-     Bitfield(mfroz,1);    /* frozen */
  932. X      Bitfield(mstun,1);    /* stunned (off balance) */
  933. X      Bitfield(mconf,1);    /* confused */
  934. X      Bitfield(mcan,1);    /* has been cancelled */
  935. X      Bitfield(mpeaceful,1);    /* does not attack unprovoked */
  936. X-     Bitfield(mcansee,1);    /* cansee 1, temp.blinded 0, blind 0 */
  937. X- 
  938. X-     Bitfield(mblinded,7);    /* cansee 0, temp.blinded n, blind 0 */
  939. X      Bitfield(mtrapped,1);    /* trapped in a pit or bear trap */
  940. X! 
  941. X      Bitfield(isshk,1);    /* is shopkeeper */
  942. X      Bitfield(isgd,1);    /* is guard */
  943. X  #if defined(ALTARS) && defined(THEOLOGY)
  944. X      Bitfield(ispriest,1);    /* is a priest */
  945. X  #endif
  946. X      Bitfield(iswiz,1);    /* is the Wizard of Yendor */
  947. X-     Bitfield(mleashed,1);    /* monster is on a leash */
  948. X  #ifdef WORM
  949. X      Bitfield(wormno,5);    /* at most 31 worms on any level */
  950. X  #endif
  951. X      long mtrapseen;        /* bitmap of traps we've been trapped in */
  952. X      long mlstmv;        /* prevent two moves at once */
  953. X      struct obj *minvent;
  954. X--- 40,69 ----
  955. X      Bitfield(mflee,1);    /* fleeing */
  956. X      Bitfield(mfleetim,7);    /* timeout for mflee */
  957. X  
  958. X+     Bitfield(mcansee,1);    /* cansee 1, temp.blinded 0, blind 0 */
  959. X+     Bitfield(mblinded,7);    /* cansee 0, temp.blinded n, blind 0 */
  960. X+ 
  961. X+     Bitfield(mcanmove,1);    /* paralysis, similar to mblinded */
  962. X+     Bitfield(mfrozen,7);
  963. X+ 
  964. X      Bitfield(msleep,1);    /* sleeping */
  965. X      Bitfield(mstun,1);    /* stunned (off balance) */
  966. X      Bitfield(mconf,1);    /* confused */
  967. X      Bitfield(mcan,1);    /* has been cancelled */
  968. X      Bitfield(mpeaceful,1);    /* does not attack unprovoked */
  969. X      Bitfield(mtrapped,1);    /* trapped in a pit or bear trap */
  970. X!     Bitfield(mleashed,1);    /* monster is on a leash */
  971. X      Bitfield(isshk,1);    /* is shopkeeper */
  972. X+ 
  973. X      Bitfield(isgd,1);    /* is guard */
  974. X  #if defined(ALTARS) && defined(THEOLOGY)
  975. X      Bitfield(ispriest,1);    /* is a priest */
  976. X  #endif
  977. X      Bitfield(iswiz,1);    /* is the Wizard of Yendor */
  978. X  #ifdef WORM
  979. X      Bitfield(wormno,5);    /* at most 31 worms on any level */
  980. X  #endif
  981. X+ 
  982. X      long mtrapseen;        /* bitmap of traps we've been trapped in */
  983. X      long mlstmv;        /* prevent two moves at once */
  984. X      struct obj *minvent;
  985. X*** include/Old/msdos.h    Mon Feb 19 22:12:06 1990
  986. X--- include/msdos.h    Fri Dec 29 21:38:04 1989
  987. X***************
  988. X*** 10,15 ****
  989. X--- 10,18 ----
  990. X  #endif
  991. X  extern const char *alllevels, *allbones;
  992. X  extern char levels[], bones[], permbones[], SAVEF[], hackdir[];
  993. X+ #ifdef MSDOS
  994. X+ extern char SAVEP[];
  995. X+ #endif
  996. X  extern int ramdisk;
  997. X  #if defined(DGK) && !defined(OLD_TOS)
  998. X  extern int count_only;
  999. X*** include/Old/obj.h    Mon Feb 19 22:12:17 1990
  1000. X--- include/obj.h    Thu Feb  8 17:17:26 1990
  1001. X***************
  1002. X*** 94,100 ****
  1003. X  #define is_sword(otmp)    (otmp->otyp >= SHORT_SWORD && otmp->otyp <= KATANA)
  1004. X  #define bimanual(otmp)    (otmp->olet == WEAPON_SYM && objects[otmp->otyp].oc_bimanual)
  1005. X  
  1006. X- #define is_flammable(otmp)    (objects[otmp->otyp].oc_material == WOOD || objects[otmp->otyp].oc_material == 0)
  1007. X  #define is_rustprone(otmp)    (objects[otmp->otyp].oc_material == METAL)
  1008. X  #define is_corrodeable(otmp)    (objects[otmp->otyp].oc_material == COPPER)
  1009. X  # endif /* STUPID_CPP */
  1010. X--- 94,99 ----
  1011. X*** include/Old/objclass.h    Mon Feb 19 22:12:33 1990
  1012. X--- include/objclass.h    Thu Jan 18 20:28:13 1990
  1013. X***************
  1014. X*** 8,16 ****
  1015. X  /* definition of a class of objects */
  1016. X  
  1017. X  struct objclass {
  1018. X!     char *oc_name;        /* actual name */
  1019. X!     char *oc_descr;        /* description when name unknown */
  1020. X!     char *oc_uname;        /* called by user */
  1021. X      Bitfield(oc_name_known,1);
  1022. X      Bitfield(oc_merge,1);    /* merge otherwise equal objects */
  1023. X      Bitfield(oc_uses_known,1); /* obj->known affects full decription */
  1024. X--- 8,16 ----
  1025. X  /* definition of a class of objects */
  1026. X  
  1027. X  struct objclass {
  1028. X!     const char *oc_name;        /* actual name */
  1029. X!     const char *oc_descr;        /* description when name unknown */
  1030. X!     char *oc_uname;            /* called by user */
  1031. X      Bitfield(oc_name_known,1);
  1032. X      Bitfield(oc_merge,1);    /* merge otherwise equal objects */
  1033. X      Bitfield(oc_uses_known,1); /* obj->known affects full decription */
  1034. X***************
  1035. X*** 79,85 ****
  1036. X  /* definitions of all object-symbols */
  1037. X  
  1038. X  #define    RANDOM_SYM    '\0'    /* used for generating random objects */
  1039. X! #define    ILLOBJ_SYM    '\\'
  1040. X  #define    AMULET_SYM    '"'
  1041. X  #define    FOOD_SYM    '%'
  1042. X  #define    WEAPON_SYM    ')'
  1043. X--- 79,85 ----
  1044. X  /* definitions of all object-symbols */
  1045. X  
  1046. X  #define    RANDOM_SYM    '\0'    /* used for generating random objects */
  1047. X! #define    ILLOBJ_SYM    ']'    /* should be same as S_MIMIC_DEF      */
  1048. X  #define    AMULET_SYM    '"'
  1049. X  #define    FOOD_SYM    '%'
  1050. X  #define    WEAPON_SYM    ')'
  1051. X*** include/Old/patchlevel.h    Mon Feb 19 22:12:47 1990
  1052. X--- include/patchlevel.h    Mon Feb 19 21:53:08 1990
  1053. X***************
  1054. X*** 66,69 ****
  1055. X   *  teach '/' about configurable symbols
  1056. X   */
  1057. X  
  1058. X! #define PATCHLEVEL    6
  1059. X--- 66,87 ----
  1060. X   *  teach '/' about configurable symbols
  1061. X   */
  1062. X  
  1063. X! /*
  1064. X!  *  Patch 7, February 19, 1990
  1065. X!  *  refine overlay support to handle portions of .c files through OVLx
  1066. X!  *    (courtesy above plus Kevin Smolkowski)
  1067. X!  *  update and extend Amiga port and documentation (courtesy Richard Addison,
  1068. X!  *    Jochen Erwied, Mark Gooderum, Ken Lorber, Greg Olson, Mike Passaretti,
  1069. X!  *    and Gregg Wonderly)
  1070. X!  *  refine and extend Macintosh port and documentation (courtesy Johnny Lee,
  1071. X!  *    Kevin Sitze, Michael Sokolov, Andy Swanson, Jon Watte, and Tom West)
  1072. X!  *  refine VMS documentation
  1073. X!  *  continuing ANSIfication, this time of const usage
  1074. X!  *  teach '/' about differences within monster classes
  1075. X!  *  smarter eating code (yet again), death messages, and treatment of
  1076. X!  *    non-animal monsters, monster unconsciousness, and naming
  1077. X!  *  extended version command to give compilation options
  1078. X!  *  and the usual bug fixes and hole plugs
  1079. X!  */
  1080. X! 
  1081. X! #define PATCHLEVEL    7
  1082. X*** include/Old/pcconf.h    Mon Feb 19 22:12:59 1990
  1083. X--- include/pcconf.h    Thu Feb 15 19:05:44 1990
  1084. X***************
  1085. X*** 6,16 ****
  1086. X  #ifndef PCCONF_H
  1087. X  #define PCCONF_H
  1088. X  
  1089. X! /* #define OS2        /* define for OS/2 (Timo Hakulinen) */
  1090. X! /* #define OS2_CODEVIEW /* define for OS/2 CodeView debugger,
  1091. X!                otherwise path searches may fail (TH) */
  1092. X  
  1093. X! #ifndef TOS
  1094. X  /*
  1095. X   *  The following options are configurable:
  1096. X   */
  1097. X--- 6,18 ----
  1098. X  #ifndef PCCONF_H
  1099. X  #define PCCONF_H
  1100. X  
  1101. X! #if !defined(TOS) && !defined(AMIGA)
  1102. X  
  1103. X! /* #define MSC        /* define for pre-ANSI Microsoft C compilers (ver. < 5.0). */
  1104. X! 
  1105. X! /* #define OS2        /* define for OS/2 (Timo Hakulinen) */
  1106. X! /* #define OS2_CODEVIEW    /* define for OS/2 CodeView debugger versions earlier
  1107. X!                than 2.3, otherwise path searches may fail */
  1108. X  /*
  1109. X   *  The following options are configurable:
  1110. X   */
  1111. X***************
  1112. X*** 61,67 ****
  1113. X--- 63,71 ----
  1114. X  #define index    strchr
  1115. X  #define rindex    strrchr
  1116. X  
  1117. X+ #ifndef AMIGA
  1118. X  #include <time.h>
  1119. X+ #endif
  1120. X  
  1121. X  #ifdef RANDOM
  1122. X  /* Use the high quality random number routines. */
  1123. X***************
  1124. X*** 95,101 ****
  1125. X  #define Getchar tgetch
  1126. X  #endif
  1127. X  
  1128. X! #ifndef TOS
  1129. X  #  define TEXTCOLOR /* */
  1130. X  #endif
  1131. X  
  1132. X--- 99,105 ----
  1133. X  #define Getchar tgetch
  1134. X  #endif
  1135. X  
  1136. X! #if !defined(TOS) && !defined(AMIGA)
  1137. X  #  define TEXTCOLOR /* */
  1138. X  #endif
  1139. X  
  1140. X*** include/Old/permonst.h    Mon Feb 19 22:13:17 1990
  1141. X--- include/permonst.h    Tue Jan 16 18:11:23 1990
  1142. X***************
  1143. X*** 16,23 ****
  1144. X   *    are set, they may have a special meaning.  For example, if set
  1145. X   *    for a blinding attack, they determine the amount of time blinded.
  1146. X   */
  1147. X- struct attack {
  1148. X  
  1149. X      uchar           aatyp;
  1150. X      uchar           adtyp, damn, damd;
  1151. X  };
  1152. X--- 16,23 ----
  1153. X   *    are set, they may have a special meaning.  For example, if set
  1154. X   *    for a blinding attack, they determine the amount of time blinded.
  1155. X   */
  1156. X  
  1157. X+ struct attack {
  1158. X      uchar           aatyp;
  1159. X      uchar           adtyp, damn, damd;
  1160. X  };
  1161. X***************
  1162. X*** 35,41 ****
  1163. X  #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
  1164. X      char        mname[24], mlet;        /* full name and sym */
  1165. X  #else
  1166. X!     char        *mname, mlet;        /* full name and sym */
  1167. X  #endif
  1168. X      schar        mlevel,            /* base monster level */
  1169. X              mmove,            /* move speed */
  1170. X--- 35,42 ----
  1171. X  #if defined(SMALLDATA) && !defined(MAKEDEFS_C)
  1172. X      char        mname[24], mlet;        /* full name and sym */
  1173. X  #else
  1174. X!     const char    *mname;            /* full name */
  1175. X!     char        mlet;            /* symbol */
  1176. X  #endif
  1177. X      schar        mlevel,            /* base monster level */
  1178. X              mmove,            /* move speed */
  1179. X*** include/Old/rm.h    Mon Feb 19 22:13:44 1990
  1180. X--- include/rm.h    Sat Feb  3 22:42:58 1990
  1181. X***************
  1182. X*** 68,74 ****
  1183. X  #define IS_STWALL(typ)    ((typ) <= TRWALL)    /* STONE <= (typ) <= TRWALL */
  1184. X  #define IS_ROCK(typ)    ((typ) < POOL)        /* absolutely nonaccessible */
  1185. X  #define IS_DOOR(typ)    ((typ) == DOOR)
  1186. X- #define IS_FLOOR(typ)    ((typ) == ROOM)
  1187. X  #define ACCESSIBLE(typ)    ((typ) >= DOOR)        /* good position */
  1188. X  #define IS_ROOM(typ)    ((typ) >= ROOM)        /* ROOM, STAIRS, furniture.. */
  1189. X  #define ZAP_POS(typ)    ((typ) >= POOL)
  1190. X--- 68,73 ----
  1191. X***************
  1192. X*** 128,134 ****
  1193. X  typedef uchar symbol_array[MAXPCHARS];
  1194. X  
  1195. X  extern symbol_array showsyms;
  1196. X! extern char *explainsyms[MAXPCHARS];  /* tells what the characters are */
  1197. X  #ifdef REINCARNATION
  1198. X  extern symbol_array savesyms;
  1199. X  #endif
  1200. X--- 127,133 ----
  1201. X  typedef uchar symbol_array[MAXPCHARS];
  1202. X  
  1203. X  extern symbol_array showsyms;
  1204. X! extern const char *explainsyms[MAXPCHARS];  /* tells what the characters are */
  1205. X  #ifdef REINCARNATION
  1206. X  extern symbol_array savesyms;
  1207. X  #endif
  1208. X*** include/Old/tosconf.h    Mon Feb 19 22:15:04 1990
  1209. X--- include/tosconf.h    Thu Feb 15 19:09:29 1990
  1210. X***************
  1211. X*** 8,36 ****
  1212. X  
  1213. X  #define MSDOS        /* must be defined to allow some inclusions */
  1214. X  
  1215. X! /* NOTE: if your TOS compiler is dumb, #define OLD_TOS and compile with
  1216. X!    oldtos.c to get a minimal configuration (you may need to do some
  1217. X!    tweaking); otherwise (e.g. GCC) don't do it. OLD_TOS corresponds
  1218. X!    most closely to LATTICE C, I think */
  1219. X  
  1220. X! /* #define OLD_TOS         /* primitive C library */
  1221. X! /* #define NO_SIGNAL         /* compiler doesn't support signals */
  1222. X  
  1223. X! #ifdef __GNUC__
  1224. X  #define FCMASK    0666
  1225. X  #define O_BINARY 0
  1226. X- #else
  1227. X- #define FCMASK    0x8000
  1228. X  #endif
  1229. X  
  1230. X  #ifdef UNIXDEBUG
  1231. X- #define O_BINARY    0
  1232. X  #define remove(x)    unlink(x)
  1233. X- #endif
  1234. X- 
  1235. X- #ifdef OLD_TOS
  1236. X- #define Rand() rand()
  1237. X- #define Srand() srand()
  1238. X  #endif
  1239. X  
  1240. X  /* configurable options */
  1241. X--- 8,30 ----
  1242. X  
  1243. X  #define MSDOS        /* must be defined to allow some inclusions */
  1244. X  
  1245. X! /*
  1246. X!    Adjust these options to suit your compiler. The default here is for
  1247. X!    GNU C with the latest version of the library.
  1248. X! */
  1249. X  
  1250. X! /*#define NO_SIGNAL         /* library doesn't support signals    */
  1251. X! /*#define NO_FSTAT        /* library doesn't have fstat() call    */
  1252. X  
  1253. X! #ifdef O_BINARY
  1254. X! #define FCMASK     O_BINARY
  1255. X! #else
  1256. X  #define FCMASK    0666
  1257. X  #define O_BINARY 0
  1258. X  #endif
  1259. X  
  1260. X  #ifdef UNIXDEBUG
  1261. X  #define remove(x)    unlink(x)
  1262. X  #endif
  1263. X  
  1264. X  /* configurable options */
  1265. X*** include/Old/tradstdc.h    Mon Feb 19 22:15:20 1990
  1266. X--- include/tradstdc.h    Tue Feb  6 18:45:05 1990
  1267. X***************
  1268. X*** 10,15 ****
  1269. X--- 10,19 ----
  1270. X  #define void    int
  1271. X  #endif
  1272. X  
  1273. X+ #ifdef APOLLO    /* the Apollo C compiler claims to be __STDC__, but isn't */
  1274. X+ #undef __STDC__
  1275. X+ #endif
  1276. X+ 
  1277. X  /*
  1278. X   * ANSI X3J11 detection.
  1279. X   * Makes substitutes for compatibility with the old C standard.
  1280. X***************
  1281. X*** 18,25 ****
  1282. X  /* Decide how to handle variable parameter lists:
  1283. X   * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
  1284. X   * should do this, and only if the library supports it).
  1285. X!  * USE_VARARGS means use the <varargs.h> facilities. Again, this should only
  1286. X!  * be done if the library supports it. ANSI is *not* required for this.
  1287. X   * Otherwise, the kludgy old methods are used.
  1288. X   * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
  1289. X   * others.
  1290. X--- 22,29 ----
  1291. X  /* Decide how to handle variable parameter lists:
  1292. X   * USE_STDARG means use the ANSI <stdarg.h> facilities (only ANSI compilers
  1293. X   * should do this, and only if the library supports it).
  1294. X!  * USE_VARARGS means use the <varargs.h> facilities.  Again, this should only
  1295. X!  * be done if the library supports it.  ANSI is *not* required for this.
  1296. X   * Otherwise, the kludgy old methods are used.
  1297. X   * The defaults are USE_STDARG for ANSI compilers, and USE_OLDARGS for
  1298. X   * others.
  1299. X***************
  1300. X*** 28,35 ****
  1301. X  /* #define USE_VARARGS        /* use <varargs.h> instead of <stdarg.h> */
  1302. X  /* #define USE_OLDARGS        /* don't use any variable argument facilites */
  1303. X  
  1304. X! #ifdef __STDC__
  1305. X! # if !(defined(AMIGA) || defined(USE_VARARGS) || defined(USE_OLDARGS))
  1306. X  #   define USE_STDARG
  1307. X  # endif
  1308. X  #endif
  1309. X--- 32,39 ----
  1310. X  /* #define USE_VARARGS        /* use <varargs.h> instead of <stdarg.h> */
  1311. X  /* #define USE_OLDARGS        /* don't use any variable argument facilites */
  1312. X  
  1313. X! #if defined(__STDC__) || defined(VMS)
  1314. X! # if !(defined(AMIGA) && defined(AZTEC_C) || defined(USE_VARARGS) || defined(USE_OLDARGS))
  1315. X  #   define USE_STDARG
  1316. X  # endif
  1317. X  #endif
  1318. X***************
  1319. X*** 71,88 ****
  1320. X  #endif
  1321. X  #endif /* NEED_VARARGS */
  1322. X  
  1323. X! #if (defined(__STDC__) || defined(MSDOS) || defined(THINKC4)) && !defined(AMIGA)
  1324. X  
  1325. X  /* Used for robust ANSI parameter forward declarations:
  1326. X   * int VDECL(sprintf, (char *, const char *, ...));
  1327. X   *
  1328. X   * FDECL() is used for functions with a fixed number of arguments;
  1329. X   * VDECL() is used for functions with a variable number of arguments.
  1330. X   * Separate macros are needed because ANSI will mix old-style declarations
  1331. X!  * with prototypes, except in the case of varargs.
  1332. X   */
  1333. X  
  1334. X  # define FDECL(f,p)    f p
  1335. X  # if defined(MSDOS) || defined(USE_STDARG)
  1336. X  #  define VDECL(f,p)    f p
  1337. X  # else
  1338. X--- 75,98 ----
  1339. X  #endif
  1340. X  #endif /* NEED_VARARGS */
  1341. X  
  1342. X! 
  1343. X! #if defined(__STDC__) || defined(MSDOS) || defined(THINKC4)
  1344. X  
  1345. X  /* Used for robust ANSI parameter forward declarations:
  1346. X   * int VDECL(sprintf, (char *, const char *, ...));
  1347. X   *
  1348. X+  * NDECL() is used for functions with zero arguments;
  1349. X   * FDECL() is used for functions with a fixed number of arguments;
  1350. X   * VDECL() is used for functions with a variable number of arguments.
  1351. X   * Separate macros are needed because ANSI will mix old-style declarations
  1352. X!  * with prototypes, except in the case of varargs, and the OVERLAY-specific
  1353. X!  * trampoli.* mechanism conflicts with the ANSI <<f(void)>> syntax.
  1354. X   */
  1355. X  
  1356. X+ # define NDECL(f)    f(void)    /* Must be overridden if OVERLAY set later */
  1357. X+ 
  1358. X  # define FDECL(f,p)    f p
  1359. X+ 
  1360. X  # if defined(MSDOS) || defined(USE_STDARG)
  1361. X  #  define VDECL(f,p)    f p
  1362. X  # else
  1363. X***************
  1364. X*** 102,112 ****
  1365. X  
  1366. X  #else /* __STDC__ */    /* a "traditional" C  compiler */
  1367. X  
  1368. X  # define FDECL(f,p)    f()
  1369. X  # define VDECL(f,p)    f()
  1370. X  
  1371. X  # ifndef genericptr_t
  1372. X! #  ifdef AMIGA
  1373. X  typedef void *        genericptr_t;
  1374. X  #  else
  1375. X  typedef char *        genericptr_t;
  1376. X--- 112,123 ----
  1377. X  
  1378. X  #else /* __STDC__ */    /* a "traditional" C  compiler */
  1379. X  
  1380. X+ # define NDECL(f)    f()
  1381. X  # define FDECL(f,p)    f()
  1382. X  # define VDECL(f,p)    f()
  1383. X  
  1384. X  # ifndef genericptr_t
  1385. X! #  if defined(AMIGA) || defined(HPUX)
  1386. X  typedef void *        genericptr_t;
  1387. X  #  else
  1388. X  typedef char *        genericptr_t;
  1389. X*** include/Old/trampoli.h    Mon Feb 19 22:15:37 1990
  1390. X--- include/trampoli.h    Mon Feb  5 18:45:30 1990
  1391. X***************
  1392. X*** 20,25 ****
  1393. X--- 20,28 ----
  1394. X  #ifdef POLYSELF
  1395. X  #define domonability()     domonability_()
  1396. X  #endif /* POLYSELF */
  1397. X+ #ifdef EXPLORE_MODE
  1398. X+ #define enter_explore_mode() enter_explore_mode_()
  1399. X+ #endif /* EXPLORE_MODE */
  1400. X  #define timed_occupation() timed_occupation_()
  1401. X  #if defined(WIZARD) || defined(EXPLORE_MODE)
  1402. X  #define wiz_attributes()   wiz_attributes_()
  1403. X***************
  1404. X*** 87,92 ****
  1405. X--- 90,96 ----
  1406. X  
  1407. X  
  1408. X  /* ### end.c ### */
  1409. X+ #define done1() done1_()
  1410. X  #define done2() done2_()
  1411. X  
  1412. X  
  1413. X***************
  1414. X*** 130,135 ****
  1415. X--- 134,143 ----
  1416. X  #define picklock()  picklock_()
  1417. X  
  1418. X  
  1419. X+ /* ### mondata.c ### */
  1420. X+ #define canseemon(x)    canseemon_(x)
  1421. X+ 
  1422. X+ 
  1423. X  /* ### o_init.c ### */
  1424. X  #define dodiscovered() dodiscovered_()
  1425. X  
  1426. X***************
  1427. X*** 156,162 ****
  1428. X  
  1429. X  
  1430. X  /* ### pickup.c ### */
  1431. X! #define ck_bag()         ck_bag_()
  1432. X  #define ck_container(x)  ck_container_(x)
  1433. X  #define doloot()         doloot_()
  1434. X  #define in_container(x)  in_container_(x)
  1435. X--- 164,170 ----
  1436. X  
  1437. X  
  1438. X  /* ### pickup.c ### */
  1439. X! #define ck_bag(x)        ck_bag_(x)
  1440. X  #define ck_container(x)  ck_container_(x)
  1441. X  #define doloot()         doloot_()
  1442. X  #define in_container(x)  in_container_(x)
  1443. X***************
  1444. X*** 227,232 ****
  1445. X--- 235,241 ----
  1446. X  
  1447. X  /* ### version.c ### */
  1448. X  #define doversion() doversion_()
  1449. X+ #define doextversion() doextversion_()
  1450. X  
  1451. X  /* ### wield.c ### */
  1452. X  #define dowield() dowield_()
  1453. X*** include/Old/unixconf.h    Mon Feb 19 22:16:11 1990
  1454. X--- include/unixconf.h    Sat Feb  3 16:30:26 1990
  1455. X***************
  1456. X*** 16,33 ****
  1457. X   * index        strchr
  1458. X   * rindex        strrchr
  1459. X   *
  1460. X-  * Also, the code for suspend is only given for BSD
  1461. X   */
  1462. X  
  1463. X  /* #define BSD        /* define for 4.n BSD  */
  1464. X!             /* also for relatives like SunOS */
  1465. X  #define ULTRIX        /* define for Ultrix v3.0 or higher (but not lower) */
  1466. X              /* Use BSD for < v3.0 */
  1467. X              /* "ULTRIX" not to be confused with "ultrix" */
  1468. X  /* #define SYSV        /* define for System V */
  1469. X  /* #define NETWORK    /* if running on a networked system */
  1470. X              /* e.g. Suns sharing a playground through NFS */
  1471. X- 
  1472. X  /* #define GENIX    /* Yet Another Unix Clone */
  1473. X  /* #define HISX        /* Bull Unix for XPS Machines */
  1474. X  /* #define UNIXPC    /* use in addition to SYSV for AT&T 7300/3B1 */
  1475. X--- 16,37 ----
  1476. X   * index        strchr
  1477. X   * rindex        strrchr
  1478. X   *
  1479. X   */
  1480. X  
  1481. X+ /* define one of the following */
  1482. X  /* #define BSD        /* define for 4.n BSD  */
  1483. X!             /* also for relatives like SunOS and DG/UX */
  1484. X  #define ULTRIX        /* define for Ultrix v3.0 or higher (but not lower) */
  1485. X              /* Use BSD for < v3.0 */
  1486. X              /* "ULTRIX" not to be confused with "ultrix" */
  1487. X  /* #define SYSV        /* define for System V */
  1488. X+ /* #define HPUX        /* Hewlett-Packard's Unix, version 6.5 or higher */
  1489. X+             /* use SYSV for < v6.5 */
  1490. X+ 
  1491. X+ 
  1492. X+ /* define any of the following that are appropriate */
  1493. X  /* #define NETWORK    /* if running on a networked system */
  1494. X              /* e.g. Suns sharing a playground through NFS */
  1495. X  /* #define GENIX    /* Yet Another Unix Clone */
  1496. X  /* #define HISX        /* Bull Unix for XPS Machines */
  1497. X  /* #define UNIXPC    /* use in addition to SYSV for AT&T 7300/3B1 */
  1498. X***************
  1499. X*** 36,41 ****
  1500. X--- 40,46 ----
  1501. X  
  1502. X  /* #define PYRAMID_BUG     /* avoid a bug on the Pyramid */
  1503. X  /* #define APOLLO    /* same for the Apollo */
  1504. X+ /* #define BSD_43_BUG    /* for real 4.3BSD cc's without schain botch fix */
  1505. X  /* #define MICROPORT_BUG /* problems with large arrays in structs */
  1506. X  /* #define MICROPORT_286_BUG /* Changes needed in termcap.c to get it to
  1507. X                 run with Microport Sys V/AT version 2.4.
  1508. X***************
  1509. X*** 66,99 ****
  1510. X   * #define DEF_PAGER    ".../mydir/mypager"
  1511. X   */
  1512. X  
  1513. X  /*
  1514. X   * If you define MAIL, then the player will be notified of new mail
  1515. X!  * when it arrives. If you also define DEF_MAILREADER then this will
  1516. X   * be the default mail reader, and can be overridden by the environment
  1517. X   * variable MAILREADER; otherwise an internal pager will be used.
  1518. X   * A stat system call is done on the mailbox every MAILCKFREQ moves.
  1519. X   */
  1520. X  
  1521. X! #define    MAIL        /* Deliver mail during the game */
  1522. X! #ifdef MAIL
  1523. X  
  1524. X  # if defined(BSD) || defined(ULTRIX)
  1525. X  #define    DEF_MAILREADER    "/usr/ucb/Mail"
  1526. X! # else
  1527. X! #  if defined(SYSV) || defined(DGUX)
  1528. X! #   ifdef M_XENIX
  1529. X  #define    DEF_MAILREADER    "/usr/bin/mail"
  1530. X- #   else
  1531. X- #define    DEF_MAILREADER    "/usr/bin/mailx"
  1532. X- #   endif
  1533. X  #  else
  1534. X! #define    DEF_MAILREADER    "/bin/mail"
  1535. X  #  endif
  1536. X  # endif
  1537. X  
  1538. X  #define    MAILCKFREQ    50
  1539. X  #endif    /* MAIL */
  1540. X  
  1541. X  #ifdef COMPRESS
  1542. X  /* Some implementations of compress need a 'quiet' option.
  1543. X   * If you've got one of these versions, put -q here.
  1544. X--- 71,133 ----
  1545. X   * #define DEF_PAGER    ".../mydir/mypager"
  1546. X   */
  1547. X  
  1548. X+ 
  1549. X+ 
  1550. X  /*
  1551. X   * If you define MAIL, then the player will be notified of new mail
  1552. X!  * when it arrives.  If you also define DEF_MAILREADER then this will
  1553. X   * be the default mail reader, and can be overridden by the environment
  1554. X   * variable MAILREADER; otherwise an internal pager will be used.
  1555. X   * A stat system call is done on the mailbox every MAILCKFREQ moves.
  1556. X   */
  1557. X  
  1558. X! #define MAIL            /* Deliver mail during the game */
  1559. X! 
  1560. X! /* The Andrew Message System does mail a little differently from normal
  1561. X!  * UNIX.  Mail is deposited in the user's own directory in ~/Mailbox 
  1562. X!  * (another directory).  MAILBOX is the element that will be added on to 
  1563. X!  * the user's home directory path to generate the Mailbox path - just in 
  1564. X!  * case other Andrew sites do it differently from CMU.
  1565. X!  *
  1566. X!  *        dan lovinger
  1567. X!  *        dl2n+@andrew.cmu.edu (dec 19 1989)
  1568. X!  */
  1569. X! 
  1570. X! /* #define AMS            /* use Andrew message system for mail */
  1571. X! 
  1572. X! /* NO_MAILREADER is for kerberos authentcating filesystems where it is
  1573. X!  * essentially impossible to securely exec child proccesses, like mail
  1574. X!  * readers, when the game is running under a special token.
  1575. X!  *
  1576. X!  *             dan
  1577. X!  */
  1578. X! 
  1579. X! /* #define NO_MAILREADER     /* have mail daemon just tell player of mail */
  1580. X  
  1581. X+ #ifdef    MAIL
  1582. X  # if defined(BSD) || defined(ULTRIX)
  1583. X+ #  ifdef AMS
  1584. X+ #define AMS_MAILBOX    "/Mailbox"
  1585. X+ #  else
  1586. X  #define    DEF_MAILREADER    "/usr/ucb/Mail"
  1587. X! #  endif
  1588. X! #else
  1589. X! # if defined(SYSV) || defined(DGUX) || defined(HPUX)
  1590. X! #  ifdef M_XENIX
  1591. X  #define    DEF_MAILREADER    "/usr/bin/mail"
  1592. X  #  else
  1593. X! #define    DEF_MAILREADER    "/usr/bin/mailx"
  1594. X  #  endif
  1595. X+ # else
  1596. X+ #define    DEF_MAILREADER    "/bin/mail"
  1597. X  # endif
  1598. X+ #endif
  1599. X  
  1600. X  #define    MAILCKFREQ    50
  1601. X  #endif    /* MAIL */
  1602. X  
  1603. X+ 
  1604. X+ 
  1605. X  #ifdef COMPRESS
  1606. X  /* Some implementations of compress need a 'quiet' option.
  1607. X   * If you've got one of these versions, put -q here.
  1608. X***************
  1609. X*** 110,116 ****
  1610. X   * The remainder of the file should not need to be changed.
  1611. X   */
  1612. X  
  1613. X! #if (defined(BSD) || defined(ULTRIX)) && !defined(MSDOS)
  1614. X  #include    <sys/time.h>
  1615. X  #else
  1616. X  #include    <time.h>
  1617. X--- 144,161 ----
  1618. X   * The remainder of the file should not need to be changed.
  1619. X   */
  1620. X  
  1621. X! /*
  1622. X!  * BSD/ULTRIX systems are normally the only ones that can suspend processes.
  1623. X!  * Suspending NetHack processes cleanly should be easy to add to other systems
  1624. X!  * that have SIGTSTP.  Currently the only such system known to work is HPUX;
  1625. X!  * other systems will probably require tweaks to unixtty.c and ioctl.c.
  1626. X!  */
  1627. X! #if defined(BSD) || defined(ULTRIX) || defined (HPUX)
  1628. X! #define    SUSPEND        /* let ^Z suspend the game */
  1629. X! #endif
  1630. X! 
  1631. X! 
  1632. X! #if defined(BSD) || defined(ULTRIX)
  1633. X  #include    <sys/time.h>
  1634. X  #else
  1635. X  #include    <time.h>
  1636. X***************
  1637. X*** 130,138 ****
  1638. X  #include "system.h"
  1639. X  
  1640. X  #if defined(BSD) || defined(ULTRIX)
  1641. X! #define    SUSPEND        /* let ^Z suspend the game */
  1642. X  #define memcpy(d, s, n)        bcopy(s, d, n)
  1643. X  #define memcmp(s1, s2, n)    bcmp(s2, s1, n)
  1644. X  #else    /* therefore SYSV */
  1645. X  #define index    strchr
  1646. X  #define rindex    strrchr
  1647. X--- 175,184 ----
  1648. X  #include "system.h"
  1649. X  
  1650. X  #if defined(BSD) || defined(ULTRIX)
  1651. X! # ifndef DGUX
  1652. X  #define memcpy(d, s, n)        bcopy(s, d, n)
  1653. X  #define memcmp(s1, s2, n)    bcmp(s2, s1, n)
  1654. X+ # endif
  1655. X  #else    /* therefore SYSV */
  1656. X  #define index    strchr
  1657. X  #define rindex    strrchr
  1658. X*** include/Old/vault.h    Mon Feb 19 22:16:28 1990
  1659. X--- include/vault.h    Sun Feb  4 09:47:28 1990
  1660. X***************
  1661. X*** 13,22 ****
  1662. X  struct egd {
  1663. X      int fcbeg, fcend;    /* fcend: first unused pos */
  1664. X      xchar gdx, gdy;        /* goal of guard's walk */
  1665. X      unsigned gddone:1;
  1666. X      struct fakecorridor fakecorr[FCSIZ];
  1667. X  };
  1668. X  
  1669. X! #define    EGD    ((struct egd *)(&(guard->mextra[0])))
  1670. X  
  1671. X  #endif /* VAULT_H /* */
  1672. X--- 13,25 ----
  1673. X  struct egd {
  1674. X      int fcbeg, fcend;    /* fcend: first unused pos */
  1675. X      xchar gdx, gdy;        /* goal of guard's walk */
  1676. X+     xchar ogx, ogy;        /* guard's last position */
  1677. X+     xchar gdlevel;        /* level guard was created on */
  1678. X+     xchar warncnt;        /* number of warnings to follow */
  1679. X      unsigned gddone:1;
  1680. X      struct fakecorridor fakecorr[FCSIZ];
  1681. X  };
  1682. X  
  1683. X! #define    EGD(mon)    ((struct egd *)(&(mon->mextra[0])))
  1684. X  
  1685. X  #endif /* VAULT_H /* */
  1686. X*** include/Old/vmsconf.h    Mon Feb 19 22:16:40 1990
  1687. X--- include/vmsconf.h    Tue Feb  6 18:45:10 1990
  1688. X***************
  1689. X*** 31,36 ****
  1690. X--- 31,42 ----
  1691. X   * The remainder of the file should not need to be changed.
  1692. X   */
  1693. X  
  1694. X+ /* GCC 1.36 (or maybe GAS) for VMS has a bug with extern const declarations.
  1695. X+    Until it is fixed, eliminate const. */
  1696. X+ #ifdef __GNUC__
  1697. X+ # define const
  1698. X+ #endif
  1699. X+ 
  1700. X  #include <time.h>
  1701. X  #include <file.h>
  1702. X  
  1703. X***************
  1704. X*** 59,69 ****
  1705. X--- 65,79 ----
  1706. X  #define Srand(seed) srand(seed)
  1707. X  #endif
  1708. X  
  1709. X+ #define bcopy(s1,s2,sz) memcpy(s2,s1,sz)
  1710. X  #define unlink(x) delete(x)
  1711. X  #define exit(x) vms_exit(x)
  1712. X  #define getuid() vms_getuid()
  1713. X  #define abort() vms_abort()
  1714. X  #define creat(f,m) vms_creat(f,m)
  1715. X+ 
  1716. X+ /* VMS global names are case insensitive... */
  1717. X+ #define An vms_an
  1718. X  
  1719. X  #endif
  1720. X  #endif /* VMS /* */
  1721. X*** include/Old/you.h    Mon Feb 19 22:17:00 1990
  1722. X--- include/you.h    Mon Feb 19 18:16:33 1990
  1723. X***************
  1724. X*** 67,73 ****
  1725. X      struct prop uprops[LAST_PROP+1];
  1726. X  
  1727. X      unsigned umconf;
  1728. X!     char *usick_cause;
  1729. X  /* For messages referring to hands, eyes, feet, etc... when polymorphed */
  1730. X  #define ARM 0
  1731. X  #define EYE 1
  1732. X--- 67,73 ----
  1733. X      struct prop uprops[LAST_PROP+1];
  1734. X  
  1735. X      unsigned umconf;
  1736. X!     const char *usick_cause;
  1737. X  /* For messages referring to hands, eyes, feet, etc... when polymorphed */
  1738. X  #define ARM 0
  1739. X  #define EYE 1
  1740. X***************
  1741. X*** 81,87 ****
  1742. X  #define LEG 9
  1743. X  #define LIGHT_HEADED 10
  1744. X  #define NECK 11
  1745. X! #define TOE 12
  1746. X  #ifdef POLYSELF
  1747. X      int mh, mhmax, mtimedone, umonnum;    /* for polymorph-self */
  1748. X      struct attribs    macurr,            /* for monster attribs */
  1749. X--- 81,88 ----
  1750. X  #define LEG 9
  1751. X  #define LIGHT_HEADED 10
  1752. X  #define NECK 11
  1753. X! #define SPINE 12
  1754. X! #define TOE 13
  1755. X  #ifdef POLYSELF
  1756. X      int mh, mhmax, mtimedone, umonnum;    /* for polymorph-self */
  1757. X      struct attribs    macurr,            /* for monster attribs */
  1758. X
  1759. END_OF_FILE
  1760. if test 53275 -ne `wc -c <'patch7.16'`; then
  1761.     echo shar: \"'patch7.16'\" unpacked with wrong size!
  1762. fi
  1763. # end of 'patch7.16'
  1764. echo shar: End of archive 20 \(of 30\).
  1765. cp /dev/null ark20isdone
  1766. MISSING=""
  1767. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ; do
  1768.     if test ! -f ark${I}isdone ; then
  1769.     MISSING="${MISSING} ${I}"
  1770.     fi
  1771. done
  1772. if test "${MISSING}" = "" ; then
  1773.     echo You have unpacked all 30 archives.
  1774.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1775. else
  1776.     echo You still need to unpack the following archives:
  1777.     echo "        " ${MISSING}
  1778. fi
  1779. ##  End of shell archive.
  1780. exit 0
  1781.